package BoletinExcepciones.Ex27;

public class Coche {
	
	private double deposito;
	private double depositoCapacidad;
	private double consumo100;
	
	public Coche (){
		depositoCapacidad = 50;
		deposito = 30;
		consumo100 = 5.6;
	}
	
	public double getDepositoCapacidad() {
		return depositoCapacidad;
	}

	public void setDepositoCapacidad(double depositoCapacidad) {
		this.depositoCapacidad = depositoCapacidad;
	}
	public double getDeposito() {
		return deposito;
	}
	public void setDeposito(double deposito) {
		this.deposito = deposito;
	}
	public double getConsumo100() {
		return consumo100;
	}
	public void setConsumo100(double consumo100) {
		this.consumo100 = consumo100;
	}
	
	void realizarViaje (int km) throws SinGasolinaException {
		if (this.tieneGasolinaViaje(deposito, km)) deposito = deposito - (km * (consumo100 / 100));
		else {
			SinGasolinaException ex = new SinGasolinaException("No tiene suficiente gasolina para el viaje");
			throw ex;
		}
	}
	
	boolean tieneGasolinaViaje (double litros, double km){
		
		if (km * (consumo100 / 100) <= litros ){
			return true;
		} else return false;

	}
	
	void repostar (double litros) throws DepositoLlenoException {
		if (deposito + litros > depositoCapacidad){
			DepositoLlenoException ex = new DepositoLlenoException("Demasiada gasolina");
			throw ex;
		} else deposito = deposito + litros;
	
	}

}
